package 面试经典150题.数组;

import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;

/**
 * @author tmh
 * @date 2024/4/15 15:51
 * @description
 */
public class T169多数元素 {
    public int majorityElement(int[] nums) {
        //遍历整个数组，对每个元素进行计数，使用哈希表记录每个元素出现的次数。
        //接着遍历哈希表中的每个元素，寻找出现次数大于数组长度一半的元素。
        //maxCount和maxNum用来记录元素出现的次数，和出现的最多的元素是啥
        int maxCount = 0;
        int maxNum = 0;
        TreeMap<Integer, Integer> counts = new TreeMap<>();
        for (int num : nums) {
            int count = counts.getOrDefault(num, 0) + 1;
            counts.put(num, count);
            if (count > maxCount) {
                maxNum = num;
                maxCount=count;
            }
        }
        return maxNum;
    }

}
